<template>
  <div class="grand-child">
    <h3>我是孙组件</h3>
    <h4>祖先组件数据 银子：{{ money }} 万元</h4>
    <h4>祖先组件数据 车子：一辆{{ car.brand }}车，价值{{ car.price }}万元</h4>
    <!-- 其中孙组件可以通过祖先组件提供的方法对祖先组件的数据进行操作 -->
    <button @click="updateMoney(6)">花爷爷的钱</button>
  </div>
</template>

<script setup lang="ts" name="GrandChild">
import { inject } from 'vue'

// 所有的后代都可以使用inject 进行收取祖先组件使用provide提供的数据，根据provide提供的名称进行获取对应的数据
let { money, updateMoney } = inject('moneyContext', {
  money: 0,
  updateMoney: (param: number) => {},
})

// 所有的后代都可以使用inject 进行收取祖先组件使用provide提供的数据，根据provide提供的名称进行获取对应的数据
let car = inject('car', { brand: '未知', price: 0 })
</script>

<style scoped>
.grand-child {
  background-color: orange;
  padding: 20px;
  border-radius: 10px;
  box-shadow: 0 0 10px black;
}
</style>
